/**
 * 项目管理页面接口
 */
import request from '@/utils/request';

export interface IDepartmentFilterOpts {
  /** 项目类型 */
  type?: Array<string>;
  /** 关联平台 */
  platform?: Array<string>;
}

export interface ICreateDepartmentParams {
  id?: number;
  /** 状态 */
  status?: number;
  /** 项目名称 */
  name: string;
  /** 联系人 */
  contact: string;
  /** 联系人电话 */
  contactNumber: string;
  /** 地址 */
  address: string;
  /** 管理平台 */
  platform: string;
  /** 项目类型 */
  type: string;
  /** 项目标签 */
  tags: string[];
}

export interface IDepartmentListQueryParams {
  /** 页数 */
  pageNum?: number;
  /** 每页数量 */
  pageSize?: number;
  /**  简历id	*/
  resumeId?: number;
  /** 关键字 */
  keyword?: string;
  /** 性别，0不限，1男，2：女	*/
  gender?: number;
  /** 学历	*/
  education?: string;
  /** 职位类型id */
  positionTypeId?: number;
  /** 职位类型 */
  positionType?: string;
  /** 开始时间，格式yyyy-MM-dd HH:mm:ss */
  startTime?: string;
  /** 结束时间，yyyy-MM-dd HH:mm:ss */
  endTime?: string;
}

export interface IExtraInfoMap {
  tags: Array<string>;
  type: string;
  status: number;
  platform: string;
}

export interface IDepartmentListItem extends IExtraInfoMap {
  id: number;
  parent: number;
  topParent: 0;
  name: string;
  orgType: number;
  status: number;
  extraInfo: string;
  extraInfoMap: IExtraInfoMap;
  children: Array<any>;
}

/**
 * 获取项目数据列表
 *
 * 接口地址：http://yapi.ii-ai.tech/project/341/interface/api/8960
 */
export async function fetchListAsync({
  pageNum,
  pageSize,
  ...restParams
}: IDepartmentListQueryParams): Promise<any> {
  return request(`/user/admin/sys/organization/page`, {
    method: 'POST',
    data: {
      currentPage: pageNum,
      pageSize,
      ...restParams,
    },
  });
}

/**
 * 创建项目
 *
 * 接口地址：http://yapi.ii-ai.tech/project/341/interface/api/8958
 */
export async function createItemAsync(params: ICreateDepartmentParams): Promise<any> {
  return request('/user/admin/sys/organization/create', {
    method: 'POST',
    data: params,
  });
}

/**
 * 更新项目
 *
 * 接口地址：http://yapi.ii-ai.tech/project/341/interface/api/8962
 */
export async function updateItemAsync(params: Partial<ICreateDepartmentParams>): Promise<any> {
  return request('/user/admin/sys/organization/update', {
    method: 'POST',
    data: params,
  });
}

/**
 * 删除项目
 *
 * 接口地址：http://yapi.ii-ai.tech/project/341/interface/api/8961
 *
 */
export async function deleteItemAsync(id: number): Promise<any> {
  return request(`/user/admin/sys/organization/delete/${id}`);
}

/**
 * 获取项目配置
 *
 * 接口地址：http://yapi.ii-ai.tech/project/341/interface/api/8968
 *
 */
export async function fetchFilterOptsAsync(): Promise<any> {
  return request(`/user/admin/sys/organization/config`);
}
